/**
 * 关闭并刷新数据列表公共方法
 * 注意:必须传入当期页面的this对象
 * */
export default {
    install(Vue) {
        Object.defineProperty(Vue.prototype.$bui, 'closeNest', {
            value: function(_this, param = 'refresh', path) {
                if (!_this) {
                    console.error('closeNest.js报的错:', '没有传this勒,搞个毛线啊')
                    return false
                }
                const RELOAD = () => {
                    if (path) {
                        // 如果存在指向地址就传递一个跳转的参数给 blank 页面
                        _this.$router.replace({
                            path: '/blank',
                            query: {
                                routerTo: path
                            }
                        })
                    } else {
                        _this.$router.replace({
                            path: '/blank'
                        })
                    }
                }
                if (param === 'reload') {
                    // 关闭并重载路由
                    _this.$root.$emit('closeThis', 'close')
                    _this.$eventHub.$emit('closeThis', 'close')
                    RELOAD()
                } else if (param === 'save') {
                    _this.$root.$emit('closeThis', 'save') // 直接关闭不进行脏检测,并重载路由
                    _this.$eventHub.$emit('closeThis', 'save') // 直接关闭不进行脏检测,并重载路由
                    RELOAD()
                } else if (param === 'refresh') {
                    // 关闭仅刷新表格数据
                    _this.$root.$emit('closeThis', 'close')
                    _this.$root.$emit('reloadPage', 'reload')
                    _this.$eventHub.$emit('closeThis', 'close')
                    _this.$eventHub.$emit('reloadPage', 'reload')
                }
            }
        })
    }
}
